home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
PET
/
P-New PET 1983
/
(p)l2.d64
/
labygen1.02.l
< prev
next >
Wrap
Text File
|
2007-04-28
|
7KB
|
276 lines
0001 // FROM DENMARK - INSTRUTEK
0002 // PUTS YOU INSIDE A LABYRINTH
0003 // THIS PROGRAM GENERATES THE DATA FILE USED BY LABYRINT
0004 MAX:=0
0005 PRINT CHR$(142)
0010 DIM T$ OF 1000
0012 DIM XL(0:4), N2(0:4), YL(0:4), XR(0:4)
0013 FOR I:=0 TO 4 DO READ XL(I),N2(I),YL(I),XR(I)
0015 DATA 8,20,-4,31,8,12,1,27,12,6,5,24,15,2,8,22,17,0,10,21
0020 OPEN FILE 2,"@0:LABYDATA",WRITE
0030 // H\JRE UDEN HUL
0040 FOR S:=0 TO 4 DO
0042 T$:=""
0050 // UDEN ENDE
0060 DN(YL(S))
0070 IF S=0 THEN
0080 TAP(XR(S))
0090 T$:+"╬"
0100 DN(N2(S)+2)
0110 T$:+"¥═"
0120 ELSE
0130 TAP(XR(S)+4-S)
0140 FOR I:=1 TO 5-S DO T$:+"╬¥¥"
0150 DN(N2(S)+2)
0152 T$:+""
0160 FOR I:=1 TO 5-S DO T$:+"═"
0170 ENDIF
0180 WRITE FILE 2: T$
0182 UD(T$)
0190 // MED ENDE
0200 T$:+""
0210 DN(YL(S)+5-S)
0220 TAP(20)
0230 IF S<4 THEN
0240 FOR I:=1 TO XR(S)-21 DO T$:+CHR$(163)
0250 ENDIF
0260 T$:+"Н"
0270 IF S<4 THEN
0280 FOR I:=1 TO N2(S) DO T$:+CHR$(167)+"¥"
0290 ENDIF
0300 T$:+CHR$(186)+"¥¥"
0310 IF S<4 THEN
0320 FOR I:=1 TO XR(S)-21 DO T$:+CHR$(164)+"¥¥"
0322 ENDIF
0330 WRITE FILE 2: T$
0332 UD(T$)
0340 ENDFOR S
0350 FOR S:=0 TO 4 DO
0360 // VENSTRE V[G UDEN ENDE
0370 T$:=""
0380 DN(YL(S))
0390 IF S=0 THEN
0400 TAP(XL(S))
0410 T$:+"═"
0420 ELSE
0430 TAP(XL(S)+1)
0440 FOR I:=1 TO 5-S DO T$:+"═"
0450 ENDIF
0460 DN(N2(S)+1)
0470 T$:+CHR$(13)
0480 IF S=0 THEN
0490 TAP(XL(S))
0500 T$:+"╬"
0510 ELSE
0520 TAP(XL(S)+5-S)
0530 FOR I:=0 TO 4-S DO T$:+"╬¥¥"
0532 ENDIF
0540 WRITE FILE 2: T$
0542 UD(T$)
0550 // VENSTRE V[G MED ENDE
0560 J:=0
0570 IF S=0 THEN J:=5
0580 T$:+""
0590 DN(YL(S)+5-S)
0600 TAP(19)
0610 IF S<4 THEN
0620 FOR I:=1 TO 18-XL(S)-5+S+J DO T$:+CHR$(163)+"¥¥"
0630 ENDIF
0640 T$:+"ϝ"
0650 IF S<4 THEN
0660 FOR I:=1 TO N2(S) DO T$:+CHR$(165)+"¥"
0670 ENDIF
0680 T$:+"╠"
0690 IF S<4 THEN
0700 FOR I:=1 TO 18-XL(S)-5+S+J DO T$:+CHR$(164)
0703 ENDIF
0710 WRITE FILE 2: T$
0712 UD(T$)
0720 ENDFOR S
0730 FOR S:=0 TO 4 DO
0740 //H\JRE HUL UDEN ENDE
0750 T$:=""
0760 DN(YL(S))
0770 IF S=0 THEN
0780 TAP(XR(S))
0790 T$:+CHR$(164)+CHR$(13)
0800 ENDIF
0810 IF S>0 AND S<4 THEN
0820 TAP(XR(S)+5-S)
0830 FOR I:=1 TO 4-S DO T$:+CHR$(165)+"¥"
0840 T$:+CHR$(13)+"æ"
0850 ENDIF
0860 IF S>0 THEN
0870 TAP(XR(S))
0880 FOR I:=S TO 4 DO T$:+CHR$(164)
0890 T$:+CHR$(165)+CHR$(13)
0900 ENDIF
0910 IF S=4 THEN
0920 TAP(XR(S))
0930 T$:+CHR$(165)+CHR$(165)+"¥¥"+CHR$(165)+CHR$(165)+CHR$(13)
0940 ENDIF
0950 IF S<4 THEN
0952 TAP(XR(S))
0960 FOR I:=0 TO N2(S)+1 DO
0970 K:=1
0980 T$:+CHR$(165)
0990 IF S>0 THEN
1000 FOR J:=S TO 3 DO T$:+""
1010 T$:+CHR$(165)
1012 K:+1+4-S
1020 ENDIF
1022 FOR J:=1 TO K DO T$:+"¥"
1024 T$:+""
1032 ENDFOR I
1033 T$:+CHR$(13)+"æ"
1034 ENDIF
1040 IF S>0 THEN
1050 TAP(XR(S))
1060 FOR J:=S TO 4 DO T$:+CHR$(163)
1070 T$:+CHR$(165)+CHR$(13)
1072 ENDIF
1090 IF S>0 AND S<4 THEN
1100 FOR I:=1 TO 4-S DO
1110 TAP(XR(S)+5-S)
1120 T$:+CHR$(165)+CHR$(13)
1130 ENDFOR I
1140 ENDIF
1150 IF S=0 THEN
1160 TAP(XR(S))
1170 T$:+CHR$(163)
1172 ENDIF
1180 WRITE FILE 2: T$
1182 UD(T$)
1190 //H\JRE HUL MED ENDE
1200 J:=3-S
1210 IF S=0 THEN J:=0
1220 T$:=""
1230 IF S=0 THEN
1240 TAP(20)
1250 T$:+""
1260 FOR I:=1 TO 19 DO T$:+CHR$(163)
1270 T$:+CHR$(13)
1280 DN(N2(0))
1290 TAP(20)
1300 FOR I:=1 TO 19 DO T$:+CHR$(164)
1310 ELSE
1320 DN(YL(S))
1330 TAP(J+XR(S)+2)
1340 FOR I:=1 TO 5-S DO T$:+CHR$(165)+"¥"
1350 T$:+CHR$(13)+"æ"
1360 TAP(20)
1370 FOR I:=19 TO J+XR(S) DO T$:+CHR$(163)
1380 T$:+CHR$(165)+CHR$(13)
1390 IF S<4 THEN
1400 TAP(J+XR(S)+2)
1410 FOR I:=1 TO N2(S) DO T$:+CHR$(165)+"¥"
1420 T$:+CHR$(13)+"æ"
1422 ENDIF
1430 TAP(20)
1440 FOR I:=19 TO J+XR(S) DO T$:+CHR$(164)
1450 T$:+CHR$(165)+CHR$(13)
1460 TAP(J+XR(S)+2)
1470 FOR I:=1 TO 5-S DO T$:+CHR$(165)+"¥"
1472 ENDIF
1480 WRITE FILE 2: T$
1482 UD(T$)
1500 ENDFOR S
1502 SKIP:
1510 FOR S:=0 TO 4 DO
1520 //VENSTRE HUL UDEN ENDE
1530 T$:=""
1540 DN(YL(S))
1550 IF S=0 THEN
1560 TAP(XL(S))
1570 T$:+CHR$(164)+CHR$(13)
1580 ENDIF
1590 IF S>0 AND S<4 THEN
1600 TAP(XL(S))
1620 FOR I:=1 TO 4-S DO T$:+CHR$(167)+"¥"
1630 T$:+CHR$(13)+"æ"
1640 ENDIF
1642 IF S>0 THEN
1644 TAP(XL(S))
1646 T$:+CHR$(167)
1648 FOR I:=2 TO 6-S DO T$:+CHR$(164)
1650 T$:+CHR$(13)
1652 ENDIF
1654 IF S=4 THEN
1660 TAP(XL(S))
1670 T$:+CHR$(167)+CHR$(167)+"¥¥"+CHR$(167)+CHR$(167)+CHR$(13)
1680 ENDIF
1690 IF S<4 THEN
1700 FOR I:=0 TO N2(S)+1 DO
1710 TAP(XL(S))
1720 T$:+CHR$(167)
1730 IF S>0 THEN
1740 FOR J:=S TO 3 DO T$:+""
1750 T$:+CHR$(167)
1760 ENDIF
1762 T$:+CHR$(13)
1770 ENDFOR I
1780 ENDIF
1790 IF S>0 THEN
1800 TAP(XL(S))
1810 T$:+CHR$(167)
1820 FOR I:=2 TO 6-S DO T$:+CHR$(163)
1830 T$:+CHR$(13)
1840 ENDIF
1850 IF S>0 AND S<4 THEN
1860 TAP(XL(S))
1870 FOR I:=1 TO 4-S DO T$:+CHR$(167)+"¥"
1880 T$:+CHR$(13)+"æ"
1890 ENDIF
1900 IF S=0 THEN
1910 TAP(XL(S))
1920 T$:+CHR$(163)+CHR$(13)
1922 ENDIF
1930 WRITE FILE 2: T$
1932 UD(T$)
1940 //VENSTRE HUL MED ENDE
1950 T$:=""
1960 IF S=0 THEN
1970 T$:+""
1980 FOR I:=1 TO 12+XL(0) DO T$:+CHR$(163)
1990 T$:+CHR$(13)
2000 DN(N2(0))
2010 FOR I:=1 TO 12+XL(0) DO T$:+CHR$(164)
2020 ELSE
2030 DN(YL(S))
2040 TAP(XL(S))
2050 FOR I:=1 TO 5-S DO T$:+CHR$(167)+"¥"
2060 T$:+CHR$(167)
2070 FOR I:=XL(S) TO 18 DO T$:+CHR$(163)
2080 T$:+CHR$(13)
2090 TAP(XL(S))
2100 IF S<4 THEN
2110 FOR I:=1 TO N2(S) DO T$:+CHR$(167)+"¥"
2120 ENDIF
2130 T$:+CHR$(167)
2140 FOR I:=XL(S) TO 18 DO T$:+CHR$(164)
2150 T$:+CHR$(13)
2160 TAP(XL(S))
2170 FOR I:=1 TO 5-S DO T$:+CHR$(167)+"¥"
2172 ENDIF
2180 WRITE FILE 2: T$
2181 UD(T$)
2190 ENDFOR S
3000 PROC DN(X)
3010 FOR Y:=1 TO X DO T$:+""
3012 IF LEN(T$)>1000 THEN STOP
3020 ENDPROC DN
3030 PROC TAP(X)
3040 FOR Y:=1 TO X DO T$:+""
3042 IF LEN(T$)>1000 THEN STOP
3050 ENDPROC TAP
3100 PROC UD(T$)
3110 PRINT "ô",LEN(T$),"",T$,""
3120 IF LEN(T$)>MAX THEN MAX:=LEN(T$)
3140 ENDPROC UD
4000 CLOSE
4010 PRINT "MAX: ",MAX
9000 //
9010 // AVAILABLE FROM COMAL USER GROUP
9020 // 5501 GROVELAND TER
9030 // MADISON WI 53716